package main

import (
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
)

type UserTest struct {
	gorm.Model
	Name   string
	Age    int64
	Active bool
}

func main() {
	db, err := gorm.Open("mysql", "root:123456@(127.0.0.1:3306)/db1?charset=utf8&parseTime=True&loc=Local")
	if err != nil {
		panic(err)
	}
	defer db.Close()

	// 自动创建表  自动迁移 （把结构体和数据表进行映射）
	db.AutoMigrate(&UserTest{})

	//u1 := UserTest{Name: "大狗", Age: 20, Active: true}
	//db.Create(&u1)
	//u2 := UserTest{Name: "二狗", Age: 18, Active: false}
	//db.Create(&u2)

	// 删除：只是把 deleted_at 字段添加删除时候的时间
	//var u = UserTest{}
	//u.ID = 3
	//db.Delete(&u)

	// 第二种写法
	//db.Where("name = ?", "二狗").Delete(UserTest{})

	// 第三种写法
	//db.Delete(UserTest{}, "age = ?", 18)

	// 真正物理删除
	db.Unscoped().Where("name = ?", "二狗").Delete(UserTest{})
}
